package top.as.sean.biz.system;

import com.baomidou.mybatisplus.extension.service.IService;
import top.as.sean.dao.dto.system.DeptAdd;
import top.as.sean.dao.dto.system.DeptEdit;
import top.as.sean.dao.dto.system.DeptPage;
import top.as.sean.dao.entity.pojo.system.Dept;
import top.as.sean.dao.vo.system.DeptTree;
import top.as.sean.dao.vo.system.DeptTreeVo;

import java.util.List;
import java.util.Set;

/**
 * 部门
 *
 * @author: ArchieSean
 * @create: 2022/11/8
 */
public interface IDept extends IService<Dept> {
    /**
     * 查询部门树
     *
     * @param dto 入参
     * @return list
     */
    List<DeptTree> getTree(DeptPage dto);

    /**
     * 新增部门信息
     *
     * @param dto 入参
     * @return boolean
     */
    Boolean addDept(DeptAdd dto);

    /**
     * 编辑部门信息
     *
     * @param dto 入参
     * @return boolean
     */
    Boolean editDept(DeptEdit dto);

    /**
     * 删除部门信息
     *
     * @param id id
     * @return boolean
     */
    Boolean removeOne(Long id);

    /**
     * 根据部门id查询部门信息
     * @param deptIds 部门ids
     * @return list
     */
    List<Dept> findByIds(Set<Long> deptIds);

    /**
     * 查询所有可用部门
     * @return list
     */
    List<DeptTreeVo> getAll();
}
